package com.ctshk.rpc.workflow.service;

import com.ctshk.common.model.PageResponse;
import com.ctshk.rpc.workflow.dto.ApprovalSettingInfoDTO;
import com.ctshk.rpc.workflow.dto.ApprovalSettingListDTO;
import com.ctshk.rpc.workflow.req.ApprovalSettingQueryReq;
import com.ctshk.rpc.workflow.req.ApprovalSettingReq;

/**
 * <p>
 * 审批配置表 服务类
 * </p>
 *
 * @author 谢诗宏
 * @since 2021-01-25
 */
public interface ISysApprovalSettingService {

    /**
     * 新增审批流程模板
     * @param settingReq
     * @param userId
     * @return
     */
    long add(ApprovalSettingReq settingReq, long userId);

    /**
     * 删除审批流程模板
     * @param id
     * @param userId
     * @return
     */
    long del(long id, long userId);

    /**
     * 修改审批流程模板
     * @param settingReq
     * @param userId
     * @return
     */
    long update(ApprovalSettingReq settingReq, long userId);

    /**
     * 查询审批流程模板详情
     * @param id
     * @return
     */
    ApprovalSettingInfoDTO query(long id);

    /**
     * 查询审批流程模板列表
     * @param settingQueryReq
     * @return
     */
    PageResponse<ApprovalSettingListDTO> getList(ApprovalSettingQueryReq settingQueryReq);

    /**
     * 复制审批流程模板
     * @param id
     * @param userId
     * @return
     */
    long copy(long id, long userId);

}
